﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;

/// <summary>
/// Summary description for ManejoHorario
/// </summary>
public class ManejoHorarios
{
    private DBMySql _mys;
    private DataTable _dt;
    #region variables
    private bool _flag;

    public bool Flag
    {
        get { return _flag; }
        set { _flag = value; }
    }
    private string _hora;

    public string Hora
    {
        get { return _hora; }
        set { _hora = value; }
    }

    private string _indice_dia;

    public string Indice_dia
    {
        get { return _indice_dia; }
        set { _indice_dia = value; }
    }

    private string _indice_hora;

    public string Indice_hora
    {
        get { return _indice_hora; }
        set { _indice_hora = value; }
    }

    private string _id_grupo;

    public string Id_grupo
    {
        get { return _id_grupo; }
        set { _id_grupo = value; }
    }
    #endregion
    public ManejoHorarios()
    {
        _mys = new DBMySql();
    }

    private bool EliminarAntiguo()
    {
        string _sp = "eliminarHorario";

        return _mys.ExStoredProcedure(_sp, new Parametros[0]);

    }

    public bool InsHorario()
    {
        //DD
        string _sp = "InsHorario";
        int _flag = 0;
        this._dt = ManejoCSV.DT;

        //FUNC
        if (this.EliminarAntiguo())
        {
            for (int x = 0; x < _dt.Rows.Count; x++)
            {
                Parametros[] _array = new Parametros[5];
                int z =1 ;
                for (int y = 1; y < _dt.Columns.Count; y++)
                {
                    _array[0] = new Parametros("_0", _dt.Rows[x].ItemArray[y-z++].ToString());
                    _array[1] = new Parametros("_1", (y).ToString());
                    _array[2] = new Parametros("_2", (x+1).ToString());
                    _array[3] = new Parametros("_3", _dt.Rows[x].ItemArray[y].ToString());
                    _array[4] = _dt.Rows.Count > x + 1 ? new Parametros("_4", _dt.Rows[x + 1].ItemArray[y - (z-1)].ToString()) : new Parametros("_4",_dt.Rows[0].ItemArray[0].ToString());
                    _flag = _mys.ExStoredProcedure(_sp, _array) ? _flag + 1 : _flag = 0;
                }
            }
        }
        return _flag > 0 ? true : false;
    }

    public string SetGrupo()
    { 
        //DD
        string _sp = "SelGrupoNow";
        //FUNC
        _mys.ReStoredProcedure(_sp);
        if (_mys.GetTabla.Rows.Count >= 1)
        {
            return _mys.GetTabla.Rows[0].ItemArray[0].ToString();
        }
        return "N/A";
    }

    public bool VerificarTocaHoraMaestro(string _usu,string _gru)
    {
        string _sp = "VerificarTocaHoraProf";
        Parametros[] _array = new Parametros[2];
        _array[0] = new Parametros("_usu", _usu);
        _array[1] = new Parametros("_gru",_gru);
        _mys.ReStoredProcedure(_sp, _array);
        return _mys.GetTabla.Rows.Count > 0 ? true : false;
    }
    

    public bool Registrar(string _usu)
    {
        string _sp = "Registrar";
        Parametros[] _array = new Parametros[1];
        _array[0] = new Parametros("_usuario", _usu);
        return _mys.ExStoredProcedure(_sp, _array) ? true : false;
    }

    public DataTable ConsultarLog(string fIni,string fFin,string hrIni,string hrFin)
    {
        string _sp = "selRegistrosFechaHora";
        Parametros[] _array = new Parametros[4];
        _array[0] = new Parametros("_fechaIni",fIni);
        _array[1] = new Parametros("_fechaFin", fFin);
        _array[2] = new Parametros("_horaIni", hrIni);
        _array[3] = new Parametros("_horaFin", hrFin);
        _mys.ReStoredProcedure(_sp, _array);
        return _mys.GetTabla;
    }
}